﻿using AccesoData;
using Entidades;
using NUnit.Framework;

namespace Pruebas.PruebasDao
{
    [TestFixture]
    class PruebaDaoCliente
    {
        [TestCase]
        public void PruebaAgregarCliente()
        {
            Cliente miCliente = FabricaEntidades.ObtenerCliente();
            FabricaEntidades.ObtenerCliente();
            
            miCliente.Nombre = "PruebaAgregarCliente";
            miCliente.LetraRif = 'V';
            miCliente.Rif = 1234567;
            miCliente.Telefono = 02125767289.ToString();
            miCliente.Telefono2 = 04214256820.ToString();
            miCliente.Telefono1 = 04216625959.ToString();
            miCliente.Id = DAO.ObtenerFabrica(1).ObtenerDaoCliente().AgregarCliente(miCliente);
            
            Cliente prueba = DAO.ObtenerFabrica(1).ObtenerDaoCliente().ObtenerCliente(miCliente.Id);
            
            
            Assert.AreNotEqual(-1,miCliente.Id);
            Assert.AreEqual(miCliente.Nombre,prueba.Nombre,"nombre");
            Assert.AreEqual(miCliente.Rif,prueba.Rif,"rif");
            Assert.AreEqual(miCliente.LetraRif,prueba.LetraRif,"letraRif");
            Assert.AreEqual(miCliente.Telefono,prueba.Telefono,"telefono");
        }

        [TestCase]
        public void PruebaEditarCliente()
        {
            Cliente miCliente = FabricaEntidades.ObtenerCliente();
            FabricaEntidades.ObtenerCliente();

            miCliente.Nombre = "PruebaAgregarCliente";
            miCliente.LetraRif = 'V';
            miCliente.Rif = 1234567;
            miCliente.Telefono = 02125767289.ToString();
            miCliente.Telefono2 = 04214256820.ToString();
            miCliente.Telefono1 = 04216625959.ToString();
            miCliente.Id = DAO.ObtenerFabrica(1).ObtenerDaoCliente().AgregarCliente(miCliente);

            miCliente.Nombre = "PruebaEditarCliente";
            miCliente.LetraRif = 'F';
            miCliente.Rif = 12345672;
            miCliente.Telefono = 02125767287.ToString();
            miCliente.Telefono2 = 04214256825.ToString();
            miCliente.Telefono1 = 04216625954.ToString();

            bool respuesta = DAO.ObtenerFabrica(1).ObtenerDaoCliente().EditarCliente(miCliente);

            Cliente prueba = DAO.ObtenerFabrica(1).ObtenerDaoCliente().ObtenerCliente(miCliente.Id);

            Assert.IsTrue(respuesta);
            Assert.AreNotEqual(-1, miCliente.Id);
            Assert.AreEqual(miCliente.Nombre, prueba.Nombre, "nombre");
            Assert.AreEqual(miCliente.Rif, prueba.Rif, "rif");
            Assert.AreEqual(miCliente.LetraRif, prueba.LetraRif, "letraRif");
            Assert.AreEqual(miCliente.Telefono, prueba.Telefono, "telefono");
            Assert.AreEqual(miCliente.Telefono1,prueba.Telefono1);
            Assert.AreEqual(miCliente.Telefono2,prueba.Telefono2);
        }
    }
}
